A service, such as a video content distributor website, allows users to view videos. Content providers provide video files to the content distributor. The files are referred to as “master” or “mezzanine” files, which are large files that are in a high quality, such as full high definition (HD) or the highest bitrate. These files need to be transcoded into different formats. For example, the files need to be transcoded into different bitrates or information needs to be added to the files, such as captions need to be burned into the video.
The video files are typically stored on nodes that are specialized for storing files. To transcode one of the video files, the content of the video file is transferred to another node that specializes in processing video files. For example, nodes that store the video files may have limited processing power that is insufficient for efficiently transcoding video files. The nodes that process the video files have more processing power and can efficiently transcode multiple video files. After finishing the transcoding, the node outputs the transcoded video file for storage on another node, which may be another node that stores transcoded video files. This provides a duty of separation between storage and processing. However, the file must be transferred from a first node that is storing the video file to a second node to transcode the video file, and then from the second node to a third node to store the transcoded video file, which uses network bandwidth.